package net.ufrog.common.weixin.pojos;

import java.io.Serializable;

import com.thoughtworks.xstream.annotations.XStreamAlias;

/**
 * 支付统一下单对象
 * 
 * @author ultrafrog
 * @version 1.0, 2015-11-20
 * @since 1.0
 */
@XStreamAlias("xml")
public class PaymentUnifiedOrder implements Serializable {

	private static final long serialVersionUID = 8600402709230657437L;

	/** 公众号 */
	private String appid;
	
	/** 商户号 */
	@XStreamAlias("mch_id")
	private String mchId;
	
	/** 设备号 */
	@XStreamAlias("device_info")
	private String deviceInfo;
	
	/** 随机字符串 */
	@XStreamAlias("nonce_str")
	private String nonceStr;
	
	/** 签名 */
	private String sign;
	
	/** 商品描述 */
	private String body;
	
	/** 商品详情 */
	private String detail;
	
	/** 附加数据 */
	private String attach;
	
	/** 商户订单号 */
	@XStreamAlias("out_trade_no")
	private String outTradeNo;
	
	/** 货币类型 */
	@XStreamAlias("fee_type")
	private String feeType;
	
	/** 总金额 */
	@XStreamAlias("total_fee")
	private Integer totalFee;
	
	/** 终端IP */
	@XStreamAlias("spbill_create_ip")
	private String spbillCreateIp;
	
	/** 交易起始时间 */
	@XStreamAlias("time_start")
	private String timeStart;
	
	/** 交易结束时间 */
	@XStreamAlias("time_expire")
	private String timeExpire;
	
	/** 商品标记 */
	@XStreamAlias("goods_tag")
	private String goodsTag;
	
	/** 通知地址 */
	@XStreamAlias("notify_url")
	private String notifyUrl;
	
	/** 交易类型 */
	@XStreamAlias("trade_type")
	private String tradeType;
	
	/** 商品编号 */
	@XStreamAlias("product_id")
	private String productId;
	
	/** 支付方式 */
	@XStreamAlias("limit_pay")
	private String limitPay;
	
	/** 用户标识 */
	private String openid;

	/**
	 * 读取公众号
	 * 
	 * @return
	 * @see #appid
	 */
	public String getAppid() {
		return appid;
	}

	/**
	 * 设置公众号
	 * 
	 * @param appid
	 * @see #appid
	 */
	public void setAppid(String appid) {
		this.appid = appid;
	}

	/**
	 * 读取商户号
	 * 
	 * @return
	 * @see #mchId
	 */
	public String getMchId() {
		return mchId;
	}

	/**
	 * 设置商户号
	 * 
	 * @param mchId
	 * @see #mchId
	 */
	public void setMchId(String mchId) {
		this.mchId = mchId;
	}

	/**
	 * 读取设备号
	 * 
	 * @return
	 * @see #deviceInfo
	 */
	public String getDeviceInfo() {
		return deviceInfo;
	}

	/**
	 * 设置设备号
	 * 
	 * @param deviceInfo
	 * @see #deviceInfo
	 */
	public void setDeviceInfo(String deviceInfo) {
		this.deviceInfo = deviceInfo;
	}

	/**
	 * 读取随机字符串
	 * 
	 * @return
	 * @see #nonceStr
	 */
	public String getNonceStr() {
		return nonceStr;
	}

	/**
	 * 设置随机字符串
	 * 
	 * @param nonceStr
	 * @see #nonceStr
	 */
	public void setNonceStr(String nonceStr) {
		this.nonceStr = nonceStr;
	}

	/**
	 * 读取签名
	 * 
	 * @return
	 * @see #sign
	 */
	public String getSign() {
		return sign;
	}

	/**
	 * 设置签名
	 * 
	 * @param sign
	 * @see #sign
	 */
	public void setSign(String sign) {
		this.sign = sign;
	}

	/**
	 * 读取商品描述
	 * 
	 * @return
	 * @see #body
	 */
	public String getBody() {
		return body;
	}

	/**
	 * 设置商品描述
	 * 
	 * @param body
	 * @see #body
	 */
	public void setBody(String body) {
		this.body = body;
	}

	/**
	 * 读取商品详情
	 * 
	 * @return
	 * @see #detail
	 */
	public String getDetail() {
		return detail;
	}

	/**
	 * 设置商品详情
	 * 
	 * @param detail
	 * @see #detail
	 */
	public void setDetail(String detail) {
		this.detail = detail;
	}

	/**
	 * 读取附加数据
	 * 
	 * @return
	 * @see #attach
	 */
	public String getAttach() {
		return attach;
	}

	/**
	 * 设置附加数据
	 * 
	 * @param attach
	 * @see #attach
	 */
	public void setAttach(String attach) {
		this.attach = attach;
	}

	/**
	 * 读取商户订单号
	 * 
	 * @return
	 * @see #outTradeNo
	 */
	public String getOutTradeNo() {
		return outTradeNo;
	}

	/**
	 * 设置商户订单号
	 * 
	 * @param outTradeNo
	 * @see #outTradeNo
	 */
	public void setOutTradeNo(String outTradeNo) {
		this.outTradeNo = outTradeNo;
	}

	/**
	 * 读取货币类型
	 * 
	 * @return
	 * @see #feeType
	 */
	public String getFeeType() {
		return feeType;
	}

	/**
	 * 设置货币类型
	 * 
	 * @param feeType
	 * @see #feeType
	 */
	public void setFeeType(String feeType) {
		this.feeType = feeType;
	}

	/**
	 * 读取总金额
	 * 
	 * @return
	 * @see #totalFee
	 */
	public Integer getTotalFee() {
		return totalFee;
	}

	/**
	 * 设置总金额
	 * 
	 * @param totalFee
	 * @see #totalFee
	 */
	public void setTotalFee(Integer totalFee) {
		this.totalFee = totalFee;
	}

	/**
	 * 读取终端IP
	 * 
	 * @return
	 * @see #spbillCreateIp
	 */
	public String getSpbillCreateIp() {
		return spbillCreateIp;
	}

	/**
	 * 设置终端IP
	 * 
	 * @param spbillCreateIp
	 * @see #spbillCreateIp
	 */
	public void setSpbillCreateIp(String spbillCreateIp) {
		this.spbillCreateIp = spbillCreateIp;
	}

	/**
	 * 读取交易起始时间
	 * 
	 * @return
	 * @see #timeStart
	 */
	public String getTimeStart() {
		return timeStart;
	}

	/**
	 * 设置交易起始时间
	 * 
	 * @param timeStart
	 * @see #timeStart
	 */
	public void setTimeStart(String timeStart) {
		this.timeStart = timeStart;
	}

	/**
	 * 读取交易结束时间
	 * 
	 * @return
	 * @see #timeExpire
	 */
	public String getTimeExpire() {
		return timeExpire;
	}

	/**
	 * 设置交易结束时间
	 * 
	 * @param timeExpire
	 * @see #timeExpire
	 */
	public void setTimeExpire(String timeExpire) {
		this.timeExpire = timeExpire;
	}

	/**
	 * 读取商品标记
	 * 
	 * @return
	 * @see #goodsTag
	 */
	public String getGoodsTag() {
		return goodsTag;
	}

	/**
	 * 设置商品标记
	 * 
	 * @param goodsTag
	 * @see #goodsTag
	 */
	public void setGoodsTag(String goodsTag) {
		this.goodsTag = goodsTag;
	}

	/**
	 * 读取通知地址
	 * 
	 * @return
	 * @see #notifyUrl
	 */
	public String getNotifyUrl() {
		return notifyUrl;
	}

	/**
	 * 设置通知地址
	 * 
	 * @param notifyUrl
	 * @see #notifyUrl
	 */
	public void setNotifyUrl(String notifyUrl) {
		this.notifyUrl = notifyUrl;
	}

	/**
	 * 读取交易类型
	 * 
	 * @return
	 * @see #tradeType
	 */
	public String getTradeType() {
		return tradeType;
	}

	/**
	 * 设置交易类型
	 * 
	 * @param tradeType
	 * @see #tradeType
	 */
	public void setTradeType(String tradeType) {
		this.tradeType = tradeType;
	}

	/**
	 * 读取商品编号
	 * 
	 * @return
	 * @see #productId
	 */
	public String getProductId() {
		return productId;
	}

	/**
	 * 设置商品编号
	 * 
	 * @param productId
	 * @see #productId
	 */
	public void setProductId(String productId) {
		this.productId = productId;
	}

	/**
	 * 读取支付方式
	 * 
	 * @return
	 * @see #limitPay
	 */
	public String getLimitPay() {
		return limitPay;
	}

	/**
	 * 设置支付方式
	 * 
	 * @param limitPay
	 * @see #limitPay
	 */
	public void setLimitPay(String limitPay) {
		this.limitPay = limitPay;
	}

	/**
	 * 读取用户标识
	 * 
	 * @return
	 * @see #openid
	 */
	public String getOpenid() {
		return openid;
	}

	/**
	 * 设置用户标识
	 * 
	 * @param openid
	 * @see #openid
	 */
	public void setOpenid(String openid) {
		this.openid = openid;
	}
}
